;#########################################################################
;��������� ValidPE
;�������� ������������ PE-�����
;����: � esi - ����� ����� � ������
;�����: ���� ���� ����������, �� eax=1, ����� eax=0
;�������: ������ ��������� ������������ � ������������� ������� � ������
;#########################################################################
ValidPE proc
        push esi;��������� ��� ��������
        pushf;��������� ������� ������
        .IF WORD ptr [esi]=="ZM"
                assume esi:ptr IMAGE_DOS_HEADER;�������� �����������, ��� � esi ��������� �� IMAGE_DOS_HEADER
                add esi,[esi].e_lfanew;������� � PE ���������
                .IF WORD PTR [esi]=="EP"
                        popf;��������������� �������� ������
                        pop esi;��������������� �������� ���������
                        mov eax,TRUE
                        ret
                .ENDIF
        .ENDIF
        popf;��������������� �������� ������
        pop esi;��������������� �������� ���������      
        mov eax,FALSE
        ret
ValidPE endp
;#########################################################################
;����� ��������� ValidPE
;#########################################################################